﻿Public Class asigVidriera

    Private Sub asigVidriera_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        LimpiaFormulario()
    End Sub

    Private Sub btnConsulta_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConsulta.Click
        Dim Producto As New clsCatalogo()
        Dim ProductoDao As New daoCatalogo()
        If txtCod.Text.Trim.Length > 0 Then 'Si ingreso un codigo de articulo busco por ese codigo
            Producto = ProductoDao.TraeArticulo(Convert.ToInt32(txtCod.Text.Trim))
            If Producto.Prod_Id > 0 Then
                AsignaCampos(Producto)
            Else
                MessageBox.Show("No se encontró ningun producto con codigo: " & txtCod.Text.Trim, "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information)
            End If
        Else ''SI no hay codigo de articulo busco por descripcion
            Dim ListaProductos As New List(Of clsCatalogo)
            If txtNom.Text.Trim.Length > 0 Then ''Si puso nombre busco por nombre
                ListaProductos = ProductoDao.TraeArticulos(txtNom.Text.Trim.ToUpper)
            Else ''Si NO puso nombre todos los articulos
                ListaProductos = ProductoDao.TraeArticulos()
            End If

            If ListaProductos.Count > 1 Then ''Encontro mas de un articulo
                TraeConsulta(ListaProductos)
            ElseIf ListaProductos.Count = 1 Then '' Encontro un solo articulo
                Producto = ListaProductos.Item(0)
                AsignaCampos(Producto)
            Else ''No encontro ningun articulo
                MessageBox.Show("No se encontró ningun producto ", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information)
            End If
        End If
        Producto.Dispose()
        ProductoDao.Dispose()
    End Sub

    Private Sub txtCod_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtCod.KeyPress
        validarInt(e)
    End Sub
    Private Sub LimpiaFormulario()
        txtCod.Text = ""
        txtNom.Text = ""
        txtMarca.Text = ""
        txtMod.Text = ""
        txtTipo.Text = ""
        txtNroSerie.Text = ""

        txtCod.Enabled = True
        txtNom.Enabled = True
        txtMarca.Enabled = False
        txtMod.Enabled = False
        txtTipo.Enabled = False
        txtNroSerie.Enabled = False

        btnAsignar.Enabled = False
        btnConsulta.Enabled = True
    End Sub
    Private Sub AsignaCampos(ByVal Producto As clsCatalogo)
        txtCod.Text = Producto.Prod_Id.ToString.Trim
        txtNom.Text = Producto.Descripcion.Trim.ToUpper
        txtMarca.Text = Producto.Marca.Trim.ToUpper
        txtMod.Text = Producto.Modelo.Trim.ToUpper
        txtTipo.Text = Producto.Tipo.Trim.ToUpper
        txtNroSerie.Text = ""

        txtCod.Enabled = False
        txtNom.Enabled = False
        txtMarca.Enabled = False
        txtMod.Enabled = False
        txtTipo.Enabled = False

        txtNroSerie.Enabled = True

        btnAsignar.Enabled = True
        btnConsulta.Enabled = False
    End Sub
    Private Sub TraeConsulta(ByVal ListaProductos As List(Of clsCatalogo))
        consultaCatalogo.ModoAcceso = "ASIGNA VIDRIERA"
        consultaCatalogo.grdCatalogo.DataSource = ListaProductos

        consultaCatalogo.grdCatalogo.Columns(0).DataPropertyName = "Prod_Id"
        consultaCatalogo.grdCatalogo.Columns(1).DataPropertyName = "Descripcion"
        consultaCatalogo.grdCatalogo.Columns(2).DataPropertyName = "Marca"
        consultaCatalogo.grdCatalogo.Columns(3).DataPropertyName = "Modelo"
        consultaCatalogo.grdCatalogo.Columns(4).DataPropertyName = "Tipo"
        consultaCatalogo.grdCatalogo.Columns(5).DataPropertyName = "Costo"
        consultaCatalogo.grdCatalogo.Columns(6).DataPropertyName = "Cantidad"
        consultaCatalogo.grdCatalogo.Columns(7).DataPropertyName = "Proveedor"
        consultaCatalogo.grdCatalogo.Columns(8).DataPropertyName = "Fecha_Ingreso"
        consultaCatalogo.grdCatalogo.Columns(9).DataPropertyName = "Cod_Suc"

        consultaCatalogo.grdCatalogo.Columns(0).HeaderText = "Codigo"
        consultaCatalogo.grdCatalogo.Columns(1).HeaderText = "Descripcion"
        consultaCatalogo.grdCatalogo.Columns(2).HeaderText = "Marca"
        consultaCatalogo.grdCatalogo.Columns(3).HeaderText = "Modelo"
        consultaCatalogo.grdCatalogo.Columns(4).HeaderText = "Tipo"
        consultaCatalogo.grdCatalogo.Columns(5).HeaderText = "Costo"
        consultaCatalogo.grdCatalogo.Columns(6).HeaderText = "Stock"
        consultaCatalogo.grdCatalogo.Columns(7).HeaderText = "Proveedor"
        consultaCatalogo.grdCatalogo.Columns(8).HeaderText = "Fecha Alta"
        consultaCatalogo.grdCatalogo.Columns(9).HeaderText = "Sucursal"

        consultaCatalogo.grdCatalogo.Columns(9).Visible = False

        consultaCatalogo.MdiParent = Me.MdiParent
        Me.Enabled = False
        consultaCatalogo.Show()
    End Sub

    Private Sub btnCancela_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancela.Click
        LimpiaFormulario()
    End Sub

    Private Sub btnAsignar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAsignar.Click

        ''Verifico que el producto tenga stock antes de asignarlo a vidriera
        Dim Producto As New clsCatalogo()
        Dim ProductoDao As New daoCatalogo()
        Producto = ProductoDao.TraeArticulo(Convert.ToInt32(txtCod.Text.Trim.ToUpper))

        If Producto.Cantidad > 0 Then
            ''Actualizo el stock en -1
            Producto.Cantidad = Producto.Cantidad - 1
            ProductoDao.Modificar(Producto)

            ''Agrego a vidriera
            Dim Vidriera As New clsVidriera()
            Dim VidrieraDao As New daoVidriera()
            Vidriera.Vid_Id = Numerador.TraeProximo("VIDRIERA")
            Vidriera.Estado = "A"
            Vidriera.Fecha_Alta = Now.Date()
            Vidriera.Prod_Id = Producto.Prod_Id
            Vidriera.Nro_Serie = txtNroSerie.Text.Trim.ToUpper
            Vidriera.Cod_Suc = Configuracion.Cod_Suc
            Vidriera.Producto = Producto
            If VidrieraDao.Alta(Vidriera) Then
                MessageBox.Show("El articulo se agrego a vidriera Correctamente", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information)
                LimpiaFormulario()
            Else
                MessageBox.Show("No se pudo agregar el articulo a vidriera. Comuniquese con sitstemas.", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            End If
        Else
            MessageBox.Show("No hay stock suficiente para asignar a vidriera", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information)
            LimpiaFormulario()
        End If
    End Sub

    Private Sub txtNroSerie_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtNroSerie.KeyPress
        validarInt(e)
    End Sub

End Class